package com.thunder.ktv.scoreengine2sdk;

/**
 * 歌曲风格枚举
 * 定义了评分引擎支持的不同音乐风格类型
 */
public enum SongStyle {
    /**
     * 流行歌曲
     */
    POP(0, "流行"),
    
    /**
     * 摇滚歌曲
     */
    ROCK(1, "摇滚"),
    
    /**
     * 民谣歌曲
     */
    FOLK(2, "民谣"),
    
    /**
     * 说唱音乐
     */
    RAP(3, "说唱"),
    
    /**
     * R&B音乐
     */
    RNB(4, "R&B"),
    
    /**
     * 古典音乐
     */
    CLASSICAL(5, "古典"),
    
    /**
     * 爵士音乐
     */
    JAZZ(6, "爵士"),
    
    /**
     * 电子音乐
     */
    ELECTRONIC(7, "电子"),
    
    /**
     * 自定义风格
     */
    CUSTOM(8, "自定义");
    
    private final int value;
    private final String chineseName;
    
    SongStyle(int value, String chineseName) {
        this.value = value;
        this.chineseName = chineseName;
    }
    
    /**
     * 获取风格的整数值
     * 
     * @return 风格对应的整数值
     */
    public int getValue() {
        return value;
    }
    
    /**
     * 获取风格的中文名称
     * 
     * @return 风格的中文名称
     */
    public String getChineseName() {
        return chineseName;
    }
    
    /**
     * 根据整数值获取对应的歌曲风格枚举
     * 
     * @param value 整数值
     * @return 对应的歌曲风格枚举，如果没有匹配则返回POP
     */
    public static SongStyle fromValue(int value) {
        for (SongStyle style : values()) {
            if (style.getValue() == value) {
                return style;
            }
        }
        return POP; // 默认返回流行风格
    }
    
    @Override
    public String toString() {
        return chineseName;
    }
} 